#include"ListNode.h"
#include<assert.h>
void Test1(SLT** phead)
{
	assert(phead);
	SLTNodePushFront(phead,1);
	SLTNodePushFront(phead, 2);
	SLTNodePushFront(phead, 3);
	SLTNodePushFront(phead, 4);
	SLTNodeDraw(phead);
	SLTNodePushBack(phead, 11);
	SLTNodeDraw(phead);
	SLTNodeInsertPush(phead, 12,3);
	SLTNodeDraw(phead);
}
void Test2(SLT** phead)
{
	assert(phead);
	SLTNodePopFront(phead);
	
	SLTNodeDraw(phead);
	SLTNodePopBack(phead);
	SLTNodeDraw(phead);
	SLTNodePopInsert(phead,2);
	SLTNodeDraw(phead);
}

void Test3(ListNodeT* phead)
{
	ListNodePushBack(phead,1);
	ListNodePushBack(phead, 2);
	ListNodePushBack(phead, 3);
	ListNodePushBack(phead, 4);
	ListNodePushBack(phead, 5);
	ListNodeDraw(phead);
	ListNodePushFront(phead, 10);
	ListNodeDraw(phead);
	ListNodePopBack(phead);
	ListNodeDraw(phead);
	ListNodePopFront(phead);
	ListNodeDraw(phead);
	ListNodeT* pos=ListNodeFind(phead, 3);
	if (pos)
	{
		ListNodePopInsert(pos);
		ListNodeDraw(phead);
	}
	ListNodeT* pos1 = ListNodeFind(phead, 2);
	if (pos)
	{
		ListNodePushInsert(pos1, 11);
		ListNodeDraw(phead);
	}
}
void Test4(SLT** pphead)
{
	SLTNodePushBack(pphead, 1);
	SLTNodePushBack(pphead, 2);
	SLTNodePushBack(pphead, 6);
	SLTNodePushBack(pphead, 7);
	SLTNodePushBack(pphead, 6);
	SLTNodeDraw(pphead);
	SLTNodeDeleteAll(pphead,6);
	SLTNodeDraw(pphead);
	SLTNodeReversal(pphead);
	SLTNodeDraw(pphead);
	SLTNodeFindMin(pphead);
	SLTNodeDraw(pphead);
}
int main()
{
	SLT* List=NULL;
	Test1(&List);
	Test2(&List);
	ListNodeT* List2 = ListNodeInit();
	Test3(List2);
	SLT* List1 = NULL;
	Test4(&List1);
	return 0;
	void

}